
package com.kweative.model.query;

import com.kweative.model.Table;
import com.kweative.model.data.Row;
import com.kweative.model.column.Column;
import com.kweative.model.relation.ISimpleRelation;
import com.kweative.model.relation.IMultiRelation;
import java.util.Map;

/**
 *
 * @author henrik
 */
public interface SetterStatement<T extends Table> {
    public T getTable();
    public <P extends Table> Statement set(ISimpleRelation<P,T> relation,Row<P> parent);
    public <C extends Table> Statement add(ISimpleRelation<T,C> relation,Row<C> child);
    public <C extends Table> Statement add(IMultiRelation<T,C> relation,Row<T> parent,Row<C> child);

    public Statement set(Column<?,T> col, Object value);

    public Statement set(Column<?,T>[] cols, Object[] values);

    public Statement set(Map<Column<?,T>, Object> nameValue);

}
